export function debounce(fn, delay) {
  let tiemr = null;
  // 借助闭包
  return function(...args) {
    // 进入该分支语句，说明当前正在一个计时过程中，并且又触发了相同事件。所以要取消当前的计时，重新开始计时
    if (tiemr) {
      clearTimeout(tiemr);
      tiemr = setTimeout(() => {
        fn.apply(this, args);
      }, delay);
    }
  };
}
// 版本二：
export function debounce2(fn, delay) {
  let tiemr = null;
  // 借助闭包
  return function() {
    if (tiemr) {
      clearTimeout(tiemr);
    }
    tiemr = setTimeout(fn, delay);
  };
}
